import {EXCHANGE} from "@/config/enum";

// 批量规则列配置
export interface ColDto {
  name: string; // key
  text: string; // 名称
  align?: string; // 对齐方式 left | right | center，默认left
  width?: number; // 宽度，默认150
  height?: number; // 高度，默认350
  render: string; // 渲染方法
  slot?: string; // body插槽
  headSlot?: string; // head插槽
  editType?: string; // 编辑类型 edit | add，默认edit
  editTypeText?: string; // 编辑类型名称 编辑 | 添加
  hasEmpty?: boolean; // 是否有清空按钮
  custom?: boolean; // 是否自定义的
  hide?: boolean; // 是否隐藏
  dataField: string; // 展示数据在store的字段名称
  dataFields?: string[]; // 多数据字段
  fieldLabels?: string[]; // 多数据字段名称
}

// 单个账号信息结构
export interface AccountItemDto {
  _id: number | string;
  Name?: string;
  AccountId?: number | string;
  AwemeId?: number | string;
  ExtAwemeId?: string;
}

// 单个创意信息结构
export interface CreativeItemDto {
  Key: number | string; // 循环用的主键
  Materials: any[]; // 素材信息
  SubmitData: any; // 下发数据
}

// 渠道文件名称映射
export const ADX_FILE_NAME_MAP = {
  [EXCHANGE.QIANCHUAN]: "qianchuan",
  [EXCHANGE.TOUTIAO]: "toutiao",
  [EXCHANGE.KUAISHOU]: "kuaishou",
  [EXCHANGE.JINNIU]: "jinniu",
  [EXCHANGE.GDT]: "gdt",
  [EXCHANGE.HUICHUAN]: "huichuan",
  [EXCHANGE.HUICHUAN_VERSION2]: "huichuan",
  [EXCHANGE.TOUTIAO_VERSION2]: "toutiao",
  [EXCHANGE.TOUTIAO2]: "toutiao2",
  [EXCHANGE.SUIXINTUI]: "suixintui",
  [EXCHANGE.BAIDU_INFO_FLOW]: "baidu",
  [EXCHANGE.QUTOUTIAO]: "qutoutiao",
  [EXCHANGE.QIANCHUAN_QY]: "qianchuan_qy",
  [EXCHANGE.XIAOMI]: "xiaomi",
};

// 规则创建步骤方式
export enum STRATEGY_CREATE_WAY {
  COMMON = "common",
  SET_APP_AFTER = "set_app_after",
  SET_CONVERT_AFTER = "set_convert_after",
  SET_LANDPAGE_AFTER = "set_landpage_after",
  SET_TRACK_AFTER = "set_track_after",
}

// 规则新建方式
// 账号分配
export enum DISTRIBUTE_MODE {
  EQUAL_DISTR = 1, // 多账号一致
  TARGET_DISTR, // 不同定向包
  TITLE_DISTR, // 不同标题包
  CREATIVE_DISTR, // 不同素材组
}

// plan分组
export enum CREATE_MODE {
  ALL_GROUP = 1, // 所有计划一个组
  ONE_GROUP, // 一个组一个计划
  TARGET_GROUP, // 按定向包分组
  CREATIVE_GROUP, // 按创意素材分组
  CAMPAIGN_COUNT_GROUP, // 按广告计划内广告组数量分组
  EXIT_PLAN_ORDER = 6, // 按广告计划顺序分组
  TITLE_GROUP, // 按标题包分组
  LANDING_PAGE_GROUP = 8, // 按落地页分组
}
// 创建方式
export enum ADD_MODE {
  NEW_PLAN = 1, // 新建广告组
  OLD_PLAN, // 选择已有广告组
}

// 创意生成方式
export enum CREATIVE_MATERIAL_MODE_TYPE {
  CUSTOM_CREATIVE = "CUSTOM_CREATIVE",
  PROGRAMMATIC_CREATIVE = "PROGRAMMATIC_CREATIVE",
}

export enum CREATIVE_MATERIAL_TYPE {
  VERTICAL_VIDEO = 1, // 竖版视频9:16
  HORIZONTAL_VIDEO, // 横版视频16:9
  VERTICAL_IMAGE, // 竖图9:16
  HORIZONTAL_IMAGE, // 大图16:9
  SMALL_IMAGE, // 小图3:2
  GROUP_IMAGE, // 三图3：2
}

// 批量功能标题、定向分配方式
export enum ASSIGNMENT_RULE_TYPE {
  AUTO = "AUTO", // 随机分配
  NORMAL = "NORMAL", // 程序化分配
}

// 出价方式
export enum TD_BID_MODE_TYPE {
  NORMAL_BID = "NORMAL_BID", // 正常出价
  RANDOM_BID = "RANDOM_BID", // 随机出价
  GRADIENT_BID = "GRADIENT_BID", // 梯度出价
}

// 预算方式
export enum TD_BUGET_MODE_TYPE {
  NORMAL_BUDGET = "NORMAL_BUDGET", // 正常预算
  RANDOM_BUDGET = "RANDOM_BUDGET", // 随机预算
  GRADIENT_BUDGET = "GRADIENT_BUDGET", // 梯度预算
}

// 超计划数处理方式
export enum CAMPAIGNS_EXCEED_TYPE {
  REMOVE = 0, // 移除不下发
  NEW_PLAN, // 新建新广告组
  ORIGIN_PLAN, // 原广告组继续下发
}

export enum SAVE_ADRULES_MODE {
  ADD = "ADD",
  UPDATE = "UPDATE",
}

// 下发状态配置
export const StatusTextMap = {
  NOT_SUBMIT: "未提交",
  WAIT_FOR_SUBMIT: "等待下发",
  PART_FAILED: "部分失败",
  SUBMITING: "下发中",
  SUCCESS: "下发成功",
  FAILED: "下发失败",
  SUBMIT_ERROR: "提交失败",
  PUTINING: "提交中",
  STOP: "已中止",
};

export const BATCH_COPY_STATUS = {
  INIT: 0, // 初始状态
  PENDING: 1, // 等待提交
  PROCESSING: 2, // 提交中
  SUCCESS: 3, // 提交成功
  ERROR: 4, // 提交失败
  PARTIAL_ERROR: 5, // 部分失败
  PARTIAL_SUSPENDED: 6, // 部分中止
};
export const BATCH_COPY_STATUS_TEXT = {
  [BATCH_COPY_STATUS.INIT]: '未提交',
  [BATCH_COPY_STATUS.PENDING]: '等待下发',
  [BATCH_COPY_STATUS.PROCESSING]: '下发中',
  [BATCH_COPY_STATUS.SUCCESS]: '下发成功',
  [BATCH_COPY_STATUS.ERROR]: '下发失败',
  [BATCH_COPY_STATUS.PARTIAL_ERROR]: '部分失败',
  [BATCH_COPY_STATUS.PARTIAL_SUSPENDED]: '部分中止',
};
